﻿using Adnc.Shared.RpcServices.Rtos;
using Adnc.Shared.RpcServices.Rtos.Pro;
using Refit;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Adnc.Shared.RpcServices.Services
{
    public interface IProductRPCService : IRpcService
    {
        /// <summary>
        /// 获取商品规格详情
        /// </summary>
        /// <returns></returns>
        [Get("/pro/Product/_sizeDetail")]
        Task<ApiResponse<List<ProductSizeWithGiftDetailRto>>> GetProductSizeDetailByIds([Query(CollectionFormat.Multi)] IEnumerable<long> Ids,bool hasGift = false);

        /// <summary>
        /// 获取所有云仓商品
        /// </summary>
        /// <returns></returns>
        [Get("/pro/Product/_AllWar")]
        Task<ApiResponse<List<ProductSizeSimpleRto>>> GetAllWarProduct();

        /// <summary>
        /// 邮费计算
        /// </summary>
        /// <param name="postageCalculationRto"></param>
        /// <returns></returns>
        [Post("/pro/Postage/_Postage")]
        [Headers("Authorization: Bearer")]
        public Task<ApiResponse<PostageRto>> PostageCalculation(PostageCalculationRto postageCalculationRto);

        /// <summary>
        /// 获取商品名称
        /// </summary>
        /// <returns></returns>
        [Get("/pro/Product/_sizeSimple")]
        Task<ApiResponse<List<ProductSizeSimpleRto>>> GetProductSizeSimpleInforByIds([Query(CollectionFormat.Multi)] IEnumerable<long> Ids);

        /// <summary>
        /// 添加商品评论
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [Post("/pro/Product/_addReview")]
        [Headers("Authorization: Bearer")]
        Task<ApiResponse<bool>> ProductAddReview(ProductAddReviewRto input);
    }
}
